Add a utility function to translate coordinates relative to one widget's
authorOwen Taylor <otaylor@redhat.com>
Tue, 16 Oct 2001 21:02:24 +0000 (21:02 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Tue, 16 Oct 2001 21:02:24 +0000 (21:02 +0000)
commit1ebe3b518b7fe1ac64d96aa4ee025d6aac435442
tree5521b85a657a92cee4289904e0f8a9dce9890190
parent3612439d217cfb55f1066a95f5f0ee9e2124f8c4
Add a utility function to translate coordinates relative to one widget's

Tue Oct 16 15:50:03 2001  Owen Taylor  <otaylor@redhat.com>

* gtk/gtkwidget.c (gtk_widget_translate_coordinates): Add
a utility function to translate coordinates relative to
one widget's allocation to coordinates relative to another
widget's allocation.

* gtk/gtkradiobutton.c: Add a special ->focus() implementation
that:
 - only accepts external focus if there is no active
       member of the group or the button is active.
 - makes arrow keys move the active button as well
   as the focus
 - make tab tab out directly.
This makes a radio button group act as a single focus location.
(#53577).

* gtk/gtkcontainer.c (gtk_container_focus): Remove prefiltering -
it was only a small optimization that didn't matter and made
things more complicated.

* gtk/gtkcontainer.c (gtk_container_focus_tab): Get rid of custom
sorter for FOCUS_TAB as we did for the other focus directions,
sort by center of widgets, not upper-left corner. (Shouldn't
matter in general.)

* gtk/gtkcontainer.c: Restructure code to remove duplicate code
from the different types of focusing: encapsulate sorting the
widgets for the focus direction into one routine
(gtk_container_focus_sort()) and then share the work of moving the
focus between the different focus directions.

* gtk/gtkcontainer.c: Fix bug where arrow navigation might not
work correctly with focus chains containing non-immediate
children. Sorting was being done using allocation coordinates for
each widget in the focus chain, and if there were intermediate
window-widgets, these allocations would not be in the same
coordinate system.
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkcontainer.c
gtk/gtkradiobutton.c
gtk/gtkwidget.c
gtk/gtkwidget.h